home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Creative Computers
/
Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso
/
shareware
/
telecom
/
xprzmodem_3.1
/
xprzmodem.doc
< prev
next >
Wrap
Text File
|
1994-11-17
|
35KB
|
660 lines
Documentation for XPRZModem.library
This is Version 3.1, 3 Oct 1993, by Rainer Hess
based on
Version 2.10, 12 February 1991, by Rick Huebner
|---
| Update comments for XprZmodem.Library
| Version 2.50 Update, 15 November 1991, by William M. Perkins
| Version 2.51 bug fix, 29 January 1992, by John Tillema
| Version 2.52 recompiled, 6 March 1992, by William M. Perkins
| Proto additions for the SAS 5.10B Compiler by Jim Cooper
| Version 2.61 recompiled, 4 July 1993, by Rainer Hess
| Little Bugfix for SAS/C 6.x used SAS/6.3 also changed
| Funktion mysprintf() to xprsprinf() now written in Assembler
| Version 2.62 - Bulid in variable Blocksize
| Version 2.63 - Now localeized if you use WB2.1 or 3.x you can
| use this future. On this time will only a german catalog
| avaiable, default will be english or if you use a older
| Kickstart/Workbench.
| Version 2.64 - Bug fix in function update_rate(), save of GURU
| #80000005 on little files eg. 2 Bytes. Compiled Librarys for
| all prozessors (68000/010/020/030/040), for kick 1.x and
| up to 2.x, by Rainer Hess
| Version 3.0 - Now it's time, i think, to make a new version
| number, this will be a full release.
| Version 3.1, - Documentation update by Geoffrey Faivre-Malloy
| Conversion of documentation to Amigaguide format.
| Code-Changes by Rainer Hess:
| ZModem runs always with the sender blocksize or uses standart-mode
| (M1024) if there is on one system a older zmodem.
|---
|---
| All of my additions to this documentation are indicated by
| <-- this left margin braketing. -WMP-
|---
1. Introduction (or "What is this thing, anyway?")
---------------------------------------------------
XPRZModem.library is an Amiga shared library (with full Lattice C
source code) which provides ZModem file transfer capability to any
XPR-compatible communications program. The XPR external protocol standard
describes an interface method which allows various file transfer protocols
to be implemented as Amiga shared libraries which may then be used
interchangeably in any compatible communications program. This takes a
heavy load off of the comm program author, who no longer has to support
scads of different file transfer protocols (many of which are quite tricky
to code) in their program in order to make it widely useful and popular.
The comm program is also smaller and more efficient as a result, since all
those obscure protocols (you know, the ones *you* don't need) are no longer
taking up space. The XPR standard also helps users, who can mix and match
their favorite file transfer protocols (and implementations thereof) with
their favorite comm programs. And when new protocols are invented, the
user simply plugs in a new library, and voila!, it's ready to use.
Hopefully, making protocols easy to support will allow more and better comm
programs to be written, as authors can concentrate on their programs
instead of constantly re-inventing the wheel.
Of course, for all of this wonderful stuff to happen, there needs to
be a good selection of these XPR protocol libraries available to the
public. It's the classic chicken-and-egg problem; comm program authors
won't be motivated to support the XPR standard unless there are a goodly
number of protocols available for it. And other programmers won't be
motivated to write XPR protocol libraries until there are a goodly number
of comm programs which can use them. In an effort to do my bit [ B^) ] for
the Amiga community, which has given me so many neat toys to play with over
the past few years, I decided to try and help get the ball rolling.
Hopefully, the early availability of a ZModem library will help
stimulate interest in the XPR standard, resulting in better Amiga telecomms
for all of us. And by making my source code PD, I hope to help others
interested in writing XPR protocol libraries by giving them some serious
example code. Also, having ZModem library code readily available to John
Q. Hacker should help ensure a steady stream of new lemon-fresh enhanced
ZModem libraries (with enzymes) for all of us to use in the future.
Of course, no discussion of the XPR standard would be complete without
giving proper credit to the author, Willy Langeveld of the Stanford Linear
Accelerator Center. Many thanks are due him for this effort. If you have
any further questions about the XPR standard, be sure and download the
spec; it should be available on BIX (since he's a sysop there), or on most
other major systems. And I'll try to keep the current version available on
my BBS, as well.
All files in this archive which are not copyrighted are hereby
released to the public domain (which they were anyway, by way of not being
copyrighted, but I want to make sure YOU realize that). Do as you like
with them. Please make lots of copies and distribute them all over the
place, and make lots of derivative works, and everything! Heck, you can
even publicly perform and/or display this code if you can figure out how...
2. Installation (OK, enough chatter; let's get to work)
--------------------------------------------------------
Couldn't be easier. Just copy the xprzmodem.library file into your
LIBS: directory. All XPR-compatible comm programs should provide a way
for you to select which XPR protocol you wish to use, either by giving you
a file requester showing LIBS:xpr*.library, or by automatically detecting
these libraries and adding them into their menus.
WARNING: Versions of VLT prior to revision 4.107 had a bug in the
xpr_sflush() routine which caused random Guru 3 crashes on some systems.
If you're using a version of VLT older than 4.107, it would be a good idea
to upgrade to the latest rev. Besides, there's a bunch of new features
you're missing, anyway...
ANOTHER WARNING: Versions of VLT prior to 5.034 had a bug in the
xpr_sread() function which caused them to (at least sometimes) fail to
return any bytes received so far when an xpr_sread() call timed out. This
version of XPRZModem.library requires VLT version 5.034 or later. (Yes,
Willy, it really was broken B-))
|---
| XprZmodem.Library version 2.50 and 2.52 tested with WTerm version
| 0.82 and Willy's term program, VLT version 5.045. No problems
| occurred. It should work fine with any term program that was able
| to work with the version 2.10 of XprZmodem.Library. -WMP-
|---
3. Options
-----------
The XPR standard lays out two ways for the comm program user to
specify options for the XPR protocol. The more primitive option is for the
comm program to provide a method of passing an option string to the XPR
library before transferring files. The precise format and usage of this
option string is left up to the XPR protocol author; the comm program just
sends it verbatim. If an environment variable is found with the same name
as the XPR protocol (i.e. there's a file in the ENV: directory called
"xprzmodem"), the comm program is supposed to use this string (contents of
file) to initialize the protocol options. Also, a menu option or some such
should normally be provided which will allow the user to be prompted for
the option string interactively.
Version 2.0 of the XPR standard created a new, more sophisticated way
for the comm program user to specify XPR options. If the comm program
supports it, the XPR library can give the comm program a list of option
prompts, and the comm program can then let the user interactively set the
various options individually, possibly even using nice gadgets and stuff.
In any case, no matter how your particular comm program feels like
handling it, these are the options supported by this implementation of
ZModem:
T{Y|N|?|C} Text translation mode:
TY = Text Yes; if receiving, translate CR/LF pairs or solo
CR chars to normal Amiga LF chars. Ignore d